<?php
/**
 * $Id: abstract.php 23 2009-06-11 02:38:49Z eyou80 $
 */

/**
 * 纯数据抽象类
 *
 * @package App
 */
abstract class App_Abstract extends Tinyask_App
{
	/**
	 * 全局配置
	 *
	 * @var App_Config
	 */
	protected $config;

	/**
	 * 用户对象
	 *
	 * @var App_User
	 */
	protected $user;

	/**
	 * 数据库对象
	 *
	 * @var Tinyask_Db
	 */
	protected $db;

	public function __construct()
	{
		/** 初始化数据库 **/
		$this->db = Tinyask_Db::get();

		/** 初始化常用应用 **/
		$this->config = $this->app('App_Config');
		$this->user = $this->app('App_User');
	}

	/**
	 * 查询方法
	 *
	 */
	abstract public function select();

	/**
	 * 统计记录数方法
	 *
	 * @param Tinyask_Db_Sql $condition
	 */
	abstract public function size(Tinyask_Db_Sql $condition);

	/**
	 * 插入记录方法
	 *
	 * @param array $rows
	 */
	abstract public function insert(array $rows);

	/**
	 * 更新记录方法
	 *
	 * @param array $rows
	 * @param Tinyask_Db_Sql $condition
	 */
	abstract public function update(array $rows, Tinyask_Db_Sql $condition);

	/**
	 * 删除记录方法
	 *
	 * @param Tinyask_Db_Sql $condition
	 */
	abstract public function delete(Tinyask_Db_Sql $condition);
}
